<template>
  <div>
    <!-- 新增修改表单 -->
    <el-dialog :title="textMap[dialogStatus]" :visible.sync="DialogFormVisibleCom" :close-on-click-modal="false" :close-on-press-escape="false">
      <el-form ref="dataForm" :rules="rules" :model="formSubmitDataCom" label-position="right" label-width="140px"
               style="width: 90%; margin:10px auto;">

        <el-row :gutter="20">
          
          <!-- 开始时间 -->
            <el-col :span="12">
              <el-form-item label="开始时间" prop="s_date">
                <el-date-picker
                  v-model="formSubmitDataCom.s_date"
                  type="date"
                  placeholder="选择日期"
                  value-format="yyyy-MM-dd"
                  >
                </el-date-picker>
              </el-form-item>
            </el-col>

            <!-- 结束时间 -->
            <el-col :span="12">
              <el-form-item label="结束时间" prop="e_date">
                <el-date-picker
                  v-model="formSubmitDataCom.e_date"
                  type="date"
                  placeholder="选择日期"
                  value-format="yyyy-MM-dd"
                  >
                </el-date-picker>
              </el-form-item>
            </el-col>
        </el-row>

      </el-form>
      <div slot="footer" class="dialog-footer" style="text-align:center">
        <!-- <el-button @click="DialogFormVisibleCom = false">
          取消
        </el-button> -->
        <el-button @click="resetFormData">
          重置
        </el-button>
        <el-button type="primary" @click="submitMethodsAction()">
          提交
        </el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
// 这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
// import PageHeaderLayout from '@/layouts/PageHeaderLayout'
// import ApeDrawer from '@/components/ApeDrawer'
// // import { mapGetters } from 'vuex'
// const calendarTypeOptions = [
//   {key: 'CN', display_name: 'China'},
//   {key: 'US', display_name: 'USA'},
//   {key: 'JP', display_name: 'Japan'},
//   {key: 'EU', display_name: 'Eurozone'}
// ]

// // arr to obj, such as { CN : "China", US : "USA" }
// const calendarTypeKeyValue = calendarTypeOptions.reduce((acc, cur) => {
//   acc[cur.key] = cur.display_name
//   return acc
// }, {})


export default {
  name: 'submitForm',
  components: {
    //PageHeaderLayout,
  },
  props: {
    dialogFormVisible: {
      type: Boolean,
      default: false
    },
    dialogStatus: {
      type: String,
    },
    // tableColumn: {
    //     type: Array,
    //     default() {
    //         return []
    //     }
    // },
    formSubmitData: {
      type: Object,
      default: function () {
        return {
          id: undefined,
          s_date:'',
          e_date:''
        }
      }
    },
  },

  // 定义属性
  data() {
    return {
      textMap: {
        update: '修改',
        create: '新增',
        manually : '手动执行'
      },
      // submitMethods:{
      //   update:'updateData',
      //   create: 'createData',
      //   copys : 'copysData'
      // },
      rules: {
        s_date: [{required: true, message: '开始日期必填', trigger: 'change'}],
        e_date: [{required: true, message: '结束日期必填', trigger: 'change'}],
     
      },
      // 表单用到的值
      // calendarTypeOptions,
      // statusOptions: ['published', 'draft', 'deleted'],
    }
  },
  // 计算属性，会监听依赖属性值随之变化
  computed: {
    DialogFormVisibleCom: {
      get() {
        return this.dialogFormVisible
      },
      set(val) {
        this.$emit('update:dialogFormVisible', val)
      }
    },
    formSubmitDataCom: {
      get() {
        return this.formSubmitData
      },
      set(val) {
        this.$emit('update:formSubmitData', val)
      }
    }
  },
  // 监控data中的数据变化
  watch: {},
  // 方法集合
  methods: {
    submitMethodsAction(){
      // update:'updateData',
      //   create: 'createData',
      //   copys : 'copysData'

      switch (this.dialogStatus) {
        // case 'update':
        //   this.updateData()
        //   break;
        // case 'create':
        //   this.createData()
        //   break;
        case 'manually':
          this.manuallyData()
          break;
      
        default:
          break;
      }
    },
    resetFormData() {

      //  let exclude = []
      // let replaceObj = {}
      // if (this.dialogStatus === 'create') {
      //   exclude = [
      //     'task_code',
      //   ]
      //   replaceObj = {
      //     lp_code: "123456", //曲线名称
      //   }
      // }
      // if (this.dialogStatus === 'update') {
      //   exclude = [
      //     'id',
      //     'task_code',
      //     'lp_code',
          
      //   ]
      // }
      // this.$emit('resetFormDataEmit', {
      //   exclude,
      //   replaceObj
      // })
    },

    // createData() {
    //   this.$refs['dataForm'].validate((valid) => {
    //     if (valid) {
    //       this.$emit('handleFromCreateDataEmit')
    //     }
    //   })
    // },

    // updateData() {
    //   this.$refs['dataForm'].validate((valid) => {
    //     if (valid) {
    //       this.$delete(this.formSubmitDataCom, "_XID");
    //       this.$delete(this.formSubmitDataCom, "lp_name");
    //       const tempData = Object.assign({}, this.formSubmitData)
    //       this.$emit('handleFromUpdateDataEmit')
    //     }
    //   })
    // },
    manuallyData(){
      this.$refs['dataForm'].validate((valid) => {
        if (valid) {
          this.$emit('handleFromManuallyDataEmit')
        }
      })
    }

  },
  // 生命周期 - 创建完成（可以访问当前this实例）
  created() {

  },
  // 生命周期 - 挂载完成（可以访问DOM元素）
  mounted() {

  },
  beforeCreate() {
  }, // 生命周期 - 创建之前
  beforeMount() {
  }, // 生命周期 - 挂载之前
  beforeUpdate() {
  }, // 生命周期 - 更新之前
  updated() {
  }, // 生命周期 - 更新之后
  beforeDestroy() {
  }, // 生命周期 - 销毁之前
  destroyed() {
  }, // 生命周期 - 销毁完成
  activated() {
  }, // 如果页面有keep-alive缓存功能，这个函数会触发
}
</script>

<style lang='scss' scoped>

</style>